Content delivery networks (CDNs) have greatly improved the transfer of content across data networks such as the Internet. One way that a CDN improves the transfer of content is to reduce the distance that content travels in order to reach a destination. To do so, the CDN operator strategically locates CDN caching servers also referred to as CDN edge servers, at various points-of-presence (PoPs) that are geographically proximate to large numbers of end users. CDN customers are content providers that offload their content to the CDN caching servers. The CDN caching servers cache the offloaded content and deliver the content on behalf of the CDN customers or content providers. More particularly, from the geographically proximate locations of the CDN caching servers to the end users, the CDN caching servers serve the cached content to end users in a manner that is more efficient than if the content providers were to serve the content themselves. The CDN uses a traffic management system to route a request for cached content to the CDN caching server that can optimally deliver the requested content to the requesting end user. As used hereafter, optimal delivery of content refers to the most efficient available means by which content can be delivered from a CDN caching server to an end user machine over a data network.
Determination of the optimal CDN caching server may be based on geographic proximity to the requesting end user as well as other factors such as latency, jitter, packet loss, load, capacity, and responsiveness of the CDN caching servers. The optimal CDN caching server delivers the requested content to the requesting end user in a manner that is more efficient than when origin servers of the content provider (i.e., CDN customer) deliver the requested content or when other CDN caching servers at different PoPs of the CDN deliver the content. For example, a CDN operator may deploy CDN caching servers to form PoPs in Los Angeles, Dallas, and New York. These CDN caching servers may cache content that is published by a particular content provider customer that has an origin server in Miami. When a requesting end user in San Francisco submits a request for the content of the particular content provider customer, the CDN will deliver the content from a CDN caching server at the Los Angeles PoP on behalf of the particular content provider customer, as opposed to the much greater distance that would be required when delivering the content from the particular content provider customer's origin server in Miami. In this manner, the CDN reduces the latency, jitter, and amount of buffering that is experienced by the requesting end user.
The foregoing presents a rudimentary and basic overview of CDNs as they existed in their initial incarnations. Subsequent incarnations have introduced new features and enhancements that further accelerate the delivery of content. For example, many CDNs now offer various levels of dynamic content caching, prefetching, and application execution at the edge.
As the evolutionary cycle continues, there remains an ever-present need to improve the content delivery capabilities of a CDN. This need translates to identifying new optimizations as well as improving the current means by which content is delivered to end users. This need further translates into improving the content delivery capabilities of the CDN without scaling the resources of the CDN. In other words, there is a need to improve how the CDN can improve content delivery based on its existing resources. To this end, there is a need to provide an architecture to automatically optimize the content of different CDN customers before delivering that content to end user. Moreover, there is need to maximize the content delivery performance gains that can be realized from content optimization by minimizing the processing and network access needed in order to perform the optimizations.